home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / C / Applications / Portable Patmos / src / portable kernel / mac / showmap.c < prev    next >
Encoding:
C/C++ Source or Header  |  1994-11-07  |  1.5 KB  |  58 lines  |  [TEXT/KAHL]

  1. #if 0
  2.         dump = fopen("dump", "w");
  3.         for (addr = 0; addr <= 0xFFFF0000; addr += step)
  4.             {
  5.             unsigned short prot;
  6.             ptestw(addr);
  7.             prot = mmusr()&4095;
  8.             if (prot != old_prot)
  9.                 {
  10.                 old_prot = prot;
  11.                 fprintf(dump, "%8lX => ", addr);
  12.                 if (prot&1) fprintf(dump, " resident");
  13.                 if (prot&2) fprintf(dump, " transparent");
  14.                 if (prot&4) fprintf(dump, " read-only");
  15.                 if (prot&16) fprintf(dump, " modified");
  16.                 fprintf(dump, " cache-mode=%d", (prot>>5)&3);
  17.                 if (prot&128) fprintf(dump, " super-viol");
  18.                 if (prot&256) fprintf(dump, " user0");
  19.                 if (prot&512) fprintf(dump, " user1");
  20.                 if (prot&1024) fprintf(dump, " global");
  21.                 if (prot&2048) fprintf(dump, " physical err");
  22.                 fprintf(dump, "\n");
  23.                 }
  24.             }
  25.         addr = urp();
  26.         for (addr2 = 0; addr2 < 128; addr2++)
  27.             {
  28.             long entry = ((long *)addr)[addr2];
  29.             if (~entry & 0x10)
  30.                 {
  31.                 long addr3;
  32.                 fprintf(dump, "%8lX => %8lX\n", addr2<<25, entry);
  33.                 for (addr3 = 0; addr3 < 128; addr3++)
  34.                     {
  35.                     long entry2 = ((long *)(entry&~0xff))[addr3];
  36.                     if (~entry2 & 0x10)
  37.                         {
  38.                         long addr4;
  39.                         fprintf(dump, "    %8lX => %8lX\n", (addr2<<25)|(addr3<<18), entry2);
  40.                         for (addr4 = 0; addr4 < (1<<18)/step; addr4++)
  41.                             {
  42.                             long entry3 = ((long *)(entry2&~0xff))[addr4];
  43.                             if (entry3 & (step-1))
  44.                                 {
  45.                                 long log = (addr2<<25)|(addr3<<18)|(addr4*step);
  46.                                 long phys = entry3&~(step-1);
  47.                                 if (log != phys) fprintf(dump, "        %8lX => %8lX\n", log, phys);
  48.                                 }
  49.                             }
  50.                         }
  51.                     }
  52.                 }
  53.             }
  54.         fflush(dump);
  55.         fclose(dump);
  56. #endif
  57. //        Debugger();
  58.